//
// Created by Zhangwj on 2023/9/27.
//

#ifndef COMPILE_TASK2_MULEXPNODE_H
#define COMPILE_TASK2_MULEXPNODE_H


#include "SyntaxTreeNode.h"
#include "../Parser.h"
#include "UnaryExpNode.h"

class MulExpNode : public SyntaxTreeNode {
public:
    //MulExp → UnaryExp | MulExp ('*' | '/' | '%') UnaryExp
    //改写为 MulExp -> UnaryExp { ('*' | '/' | '%') UnaryExp } 遍历时要改成原语法树的形状
    std::vector<std::unique_ptr<UnaryExpNode>> UnaryExps;
    std::vector<LexType> Ops;

    static std::unique_ptr<MulExpNode> MulExpParser(Parser &parser);
};


#endif //COMPILE_TASK2_MULEXPNODE_H
